package com.yc.common.utils.uuid;

import com.github.f4b6a3.uuid.UuidCreator;
import com.github.f4b6a3.uuid.util.UuidBuilder;
import com.github.f4b6a3.uuid.util.UuidUtil;

public class IdUtil {

    /**
     * 获取随机UUID
     *
     * @return 随机UUID
     */
    public static String randomUUID() {
        return UUID.randomUUID().toString();
    }

    /**
     * 简化的UUID，去掉了横线
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String simpleUUID() {
        return UUID.randomUUID().toString(true);
    }

    /**
     * 获取随机UUID，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 随机UUID
     */
    public static String fastUUID() {
        return UUID.fastUUID().toString();
    }

    /**
     * 简化的UUID，去掉了横线，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String fastSimpleUUID() {
        return UUID.fastUUID().toString(true);
    }

    /**
     * 生成一个long类型的UUID
     *
     * @return long类型UUID
     */
    public static long generateLongUUID() {
        // 使用 UUID Creator 生成 Version 1 UUID
        java.util.UUID uuid = UuidCreator.getTimeBased();
        // 使用 timestamp() 方法提取时间戳
        return uuid.timestamp();
    }
}
